# 列表
# 通过方括号括起、逗号分隔的一组值
# 是数据的组合到一起的一种形式。一个列表可以包含不同类型的元素，但通常使用时各个元素类型相同

# 知识点1 => 列表的定义和声明
aList = []  # 这声明了一个空的列表
squares = [1, 4, 9, 16, 25]  # 这就声明了一个列表，里面存的是数组

# 知识点2 => 列表的索引
# 索引从0开始
print(squares[0])  # 1
print(squares[1])  # 4
# -1返回最后一项
print(squares[-1])  # 25
# 倒数第二项，负数是倒序索引
print(squares[-2])  # 16

# 知识点3 => 切片操作
# 使用:，叫做切片，会返回一个新的列表
print(squares[:])  # [1, 4, 9, 16, 25]
# 取索引2到3位置上的元素。含头（2）不含尾（4）
print(squares[2:4])  # [9, 16]

# 知识点4 => 列表的元素可以改变
squares[1] = 250
print(squares)  # [1, 250, 9, 16, 25]

# 知识点5 => 通过 append() 方法 添加新元素

squares.append(36)
print(squares)  # [1, 250, 9, 16, 25, 36]

# 知识点5 => 从列表删除元素

squares.remove(250)
print(squares)  # [1, 9, 16, 25, 36]

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
letters[2:5] = ['C', 'D', 'E']
print(letters)  # ['a', 'b', 'C', 'D', 'E', 'f', 'g']
letters[2:5] = []
print(letters)  # ['a', 'b', 'f', 'g']
# 清空列表
letters[:] = []
print(letters)  # []

# 思考：如何从letters中删除'e',至少用两种方式
